// +build wireinject

package serve

import (
	"aquaman/app/biz"
	"aquaman/app/infra/config"
	"aquaman/app/infra/db"
	"aquaman/app/infra/grpc"
	"aquaman/app/infra/log"
	"github.com/google/wire"
)

var ProviderSet = wire.NewSet(
	NewApp,
	gRPCServerOptions,
	gRPCRegisterServiceFn,
)

var Set = wire.NewSet(
	biz.SuperSet,
	config.ProviderSet,
	log.ProviderSet,
	db.ProviderSet,
	grpc.ProviderSet,
	ProviderSet,
)

func app() (*App, func(), error) {
	panic(wire.Build(Set))
}

